package com.zjsru.oneDay202205;

import java.util.Arrays;

/**
 * @Author: likew
 * @Date: 2022/5/25
 * 环绕字符串中唯一的子字符串
 * 输入: p = "a"
 * 输出: 1
 * 解释: 字符串 s 中只有一个"a"子字符。
 *
 * 输入: p = "zab"
 * 输出: 6
 * 解释: 在字符串 s 中有六个子串“z”、“a”、“b”、“za”、“ab”、“zab”。
 */
public class findSubstringInWraproundString {
    
    public int findSubstringInWraproundString(String p) {
        int[] nums = new int[26];
        int k = 0;
        for (int i = 0; i < p.length(); i++) {
            if(i > 0 && (p.charAt(i) - p.charAt(i - 1) + 26) % 26==1){
                ++k;
            }else{
                k = 1;
            }
            nums[p.charAt(i) - 'a'] = Math.max(nums[p.charAt(i) - 'a'],k);
        }
        return Arrays.stream(nums).sum();
    }
    
    public static void main(String[] args) {
        findSubstringInWraproundString findSubstringInWraproundString = new findSubstringInWraproundString();
        String p = "zab";
        System.out.println(findSubstringInWraproundString.findSubstringInWraproundString(p));
    }
}
